package org.langcom.resources;

import java.io.File;
import java.io.IOException;
import java.util.List;



public interface IResourceViewClient {

	public List<IResourceCategory> getResourceCategoryList();
	public void addResourceCategory(IResourceCategory category);
	public void removeResourceCategory(IResourceCategory category) throws Exception;
	public void removeResourceMetadata(IResourceMetadata metadata) throws Exception;
	public void refresh() throws Exception;
	public void save() throws Exception;
	public String getContentDescription();
	public IResourceCategory createResourceCategory(IResourceCategory parent);
	public void saveResource(IResourceMetadata newResource, IResourceContainer container) throws Exception ;
	public void setNewCategory(IResourceCategory input);
	public void setNewResourceMetadata(IResourceMetadata newResourceMetadata);
	public IResourceMetadata createResourceMetadata(IResourceCategory parent, File file) throws IOException;
	public boolean userHasPermissions();
	public List<IResourceCategory> getAllUserResourceCategoryList();
	public long getMaximumResourceSize();
	public long getUserQuota();
	public long getAvailableSpace();
	public IResourceCategory cloneCategory(IResourceCategory input);
	public IResourceMetadata cloneMetadata(IResourceMetadata resourceMetadata);
}
